Flusso delle procedure del barcode  così come le compie il magazziniere con il barcode.
Le procudere analizzate sono 3: carico(versamento), scarico(prelievo), prelievo pickinglist

1 reset iniziale

Il magazziniere entra nello stato iniziale premendo f1
Poichè non c'è nessuna pickinglist prenotata (stato 1) , (questo è il pre-requisito)  questo è lo stato iniziale

Input text e label diventano:

L'input text Pallet diventa vuoto e acquisisce il focus
L'input text Cella diventa 9000000
La label 1 , dall'alto , diventa rossa
Le altre 3 sono vuote e grige.

Questo stato iniziale è identico per carico e scarico , la discriminante tra le due operazioni è ciò che l'operatore farà dopo essere entrato in questo stato. 

2 prelievo

Il passaggio 2 è sempre la lettura di un codice udc. Che può essere fatta da barcode oppure da tastiera, se è fatta da barcode la lettura implica uno spostamento del focus sull'input text Cella. Se è fatta da tastiera all'input del 6° carattere il focus salta automaticamente all'inputtext Cella.

Se ora l'operatore preme "f4 elimina" il pallet corrente viene associato alla cella 9000000 e di fatto prelevato.
Questo chiude il prelievo, il dato viene inviato al server e la 4 label diventano

Ok scarico - 698345 -> verde
P2506000007
S-174
Center ring

Questo è lo scarico , dopo  2 secondi la form si resetta come in 1. 


3 versamento

Se all'atto della lettura del codice udc anzichè lasciare 9000000 nell'input text l'operatore leggesse un codice di cella questo implicherebbe un versamento di quell'udc in quella cella. 
La lettura del codice di cella può avvenire solo da barcode e non da tastiera, a meno che l'oepratore non conosca effettivamente quel codice.

Nel momento in cui l'operatore legge il barcode della cella automaticamente parte l'aggiornamento del versameto sul server. Se l'operazine è andata a buona fine le label intermendi diventano

OK carico .  --> verde
Lotto
codice
descrizione

dopo 2 secondi dall'ok il form si resetta come in 1.

4 pickinglkist

se esiste una picking list con id stato 1 questa può essere prelevata mediante f1, con f2 si salta alla lista successiva con numdoc più basso. Se non c'è nessuna picking list prenotata f1 resetta il barcode alla condizione 1 . Se premo f2 salto alla picking list successiva per numdoc a quella con il numdoc più basso di tutte. In pratica quella con il numdoc più basso può andare in f1 solo se viene prenotata. 

Supponiamo di avere prentato una pickinglist e quindi di premere f1, oppure di andare sulla successiva a quella con il numdoc più basso con f2. Premere f1 o f2 se ci sono plist prenotate o più plist, non perdispone  più al prelievo o versamento di cui ai punti 1 e 2  ma allo scorrimento/prelievo di una picking list.

L'operatore preme f1 , gli inputtext e le label diventano
pallet : vuoto con focus
cella: 9000000

Ok Cella indirizzo cella
numdoc della pickinglist
descrizione picking list
num udc

Questa informazioni sono quelle prese dal contneuto dle picking list
, cioè la prima udc da prelevare, la sua locazione e la descrizone del docuemnto corrente selezionato.
L'operatore va quindi a cercare la cella,  il focus si è posizionato su inputtext pallet.
L'operatore legge il barcode della UDC, oppure digita il codice e al sesto carattere scatta il tab sull'input successivo.  

Qui , in automatico, parte il controllo ce codice udc sia quello giusto, se ciè è vero parte il dato per il database che associa l'udc alla cella 7G etc. non ricordo, che significa che l'udc è stata spedita. Cosa avvenga in questo punto è da verificare sul codice 

Se è tutto ok la prima label diviene "ok scarico "  -- verde 
e occorre vedere sul codice c# cosa compare nelle altre labels.

Dopo  2 secondi al form si posiziona sulla successiva udc e il ciclo ricomincia.





 